A complex system, such as an electrical plant or a vehicle such as a ship, aircraft or spacecraft, includes many different modules. In such complex systems it is desirable to identify adverse events, such as faults, failures or other malfunctions, which might be occurring in one or more of its modules.
One common approach that is used to identify adverse events that might be occurring in one or more of the modules of a complex system is to use one or more built-in tests (BITs) at each module. A BIT is a diagnostic test used to determine whether a particular function of a module is operating correctly. Functions tested may be characteristic of software or hardware or both. In general, a BIT generates one of two binary results: either a pass result or fail result. A pass result is generated by the BIT when there is no indication that a problem is occurring in that particular module. By contrast, a fail result (sometimes referred to as a BIT fault or a BIT fault code) is generated by the BIT when there is an indication that a problem is occurring in that particular module. For example, when the complex system is a vehicle (e.g., aircraft or spacecraft), a vehicle health monitoring system(s) can be implemented that monitors data generated by BITs of the vehicle's modules and to identify adverse events that might be occurring in one or more of the modules. In the context of an aircraft BITs can be implemented at avionics modules or line replaceable units (LRUs) to detect a fault condition.
In many systems, a BIT will generate a fail result (or BIT fault code) that is misleading, incorrect or otherwise in error. In such cases, a false alarm is generated that indicates that a problem is occurring in that particular module when, in reality, no problem is actually occurring in that particular module. These erroneous BIT fault codes often result in unnecessary or misdirected corrective actions that are very costly. For instance, in one example where the complex system is an aircraft, an erroneous fail result can cause disassembly of large sections of the aircraft so that technician can get access to the allegedly faulting module, only to learn that it is actually operating correctly. BITs implemented at avionics modules are notoriously unreliable since they often generate BIT fault codes that are incorrect or misleading. For example, BIT fault codes will often indicate that a fault is found or that a malfunction is present, but upon teardown and inspection, it is often found that no true fault is actually occurring. The avionics system provider will typically have to service the faulty system and take what amounts to unnecessary corrective action. This results in unnecessary cost to product consumers as well as the avionics system provider.
There is a need for methods and systems that can confidently predict when a BIT fault code is likely to be incorrect or misleading versus when a BIT fault code is likely to be accurate or correct (i.e., a true fault).
One approach is to maintain a database of diligent records that record, for each BIT fault code, an indication of whether the BIT fault code was valid/accurate or was invalid/inaccurate/misleading. For example, for a particular BIT fault code, a corresponding indicator of fault found (FF) or no fault found (NFF) can be recorded. A fault found (FF) indicator can be logged when a particular BIT fault code is legitimate (i.e., corresponds to an actual fault condition and an appropriate corrective action was needed), and a no fault found (NFF) indicator can be logged when a particular BIT fault code was illegitimate (i.e., corresponds to false alarm and corrective action was not needed). Over time a log of true BIT fault codes and false BIT fault codes is compiled.
Once a database of such records is built, an analyst can then manually inspect the records and determine whether a particular BIT fault code is likely to correspond to an actual fault condition or a false alarm. Once this determination has been made, the person can then make an educated guess as to whether or not corrective action needs to be taken with respect to the particular module that generated the BIT fault code (e.g., whether it need to be inspected, repaired, serviced, etc).
One drawback of this approach is that it is time-consuming endeavor particularly as the number of modules in a complex system increases since an analyst must study old BIT fault code error logs and determine which BIT fault codes are reliable or not. It also requires that the analyst have a lot of knowledge regarding what BIT fault code data is reliable or not, and is subject to human error in interpreting that data. Another drawback is that in many cases the determination of whether a particular module is not operating correctly is based on consideration of a single BIT fault code generated by a BIT.
Notwithstanding these advances, it is desirable to provide improved analysis systems for use with such complex systems that can discriminate between legitimate BIT fault codes that are accurate or valid, and those that are invalid, inaccurate or misleading (i.e., false alarms). Furthermore, other desirable features and characteristics of the present invention will become apparent from the subsequent detailed description of the invention and the appended claims, taken in conjunction with the accompanying drawings and this background of the invention.